home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / Buch / Bubble1.cpp < prev    next >
C/C++ Source or Header  |  1999-01-25  |  2KB  |  83 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "Bubble1.h"
  6. //---------------------------------------------------------------------------
  7. #pragma resource "*.dfm"
  8.  
  9. template <class AllTyp>
  10. void ExChange (AllTyp &x, AllTyp &y)
  11. {
  12.   AllTyp z = x; x = y; y = z;
  13. }
  14.  
  15. template <class AllTyp>
  16. AllTyp BubbleSort (AllTyp *Element, int Max)
  17. {
  18.   for (int x=0; x<Max; x++)
  19.     for (int y=x; y<Max; y++)
  20.       if (Element[x] > Element[y])
  21.         ExChange (Element[x], Element[y]);
  22.   return Element[0];
  23. }
  24.  
  25. const int Max = 30;
  26. String Kette[Max];
  27. int Zahl[Max];
  28. bool Modus;
  29.  
  30. TForm1 *Form1;
  31.  
  32. //---------------------------------------------------------------------------
  33. __fastcall TForm1::TForm1(TComponent* Owner)
  34.     : TForm(Owner)
  35. {
  36. }
  37. //---------------------------------------------------------------------------
  38. void __fastcall TForm1::FormCreate(TObject *Sender)
  39. {
  40.   randomize ();
  41. }
  42. //---------------------------------------------------------------------------
  43. void __fastcall TForm1::Button1Click(TObject *Sender)
  44. {
  45.   if (OpenDialog1->Execute())
  46.   {
  47.     Memo1->Lines->LoadFromFile (OpenDialog1->FileName);
  48.     for (int i=0; i<Max; i++)
  49.     {
  50.       Kette[i] = Memo1->Lines->Strings[i];
  51.     }
  52.   }
  53.   Modus = true;
  54. }
  55. //---------------------------------------------------------------------------
  56. void __fastcall TForm1::Button2Click(TObject *Sender)
  57. {
  58.   for (int i=0; i<Max; i++)
  59.   {
  60.     Zahl[i] = random(100000)+1000;
  61.     Memo1->Lines->Add (IntToStr (Zahl[i]));
  62.   }
  63.   Modus = false;
  64. }
  65. //---------------------------------------------------------------------------
  66. void __fastcall TForm1::Button3Click(TObject *Sender)
  67. {
  68.   Memo1->Clear ();
  69.   if (Modus)
  70.   {
  71.     BubbleSort (Kette, Max);
  72.     for (int i=0; i<Max; i++)
  73.       Memo1->Lines->Add (Kette[i]);
  74.   }
  75.   else
  76.   {
  77.     BubbleSort (Zahl, Max);
  78.     for (int i=0; i<Max; i++)
  79.       Memo1->Lines->Add (IntToStr (Zahl[i]));
  80.    }
  81. }
  82. //---------------------------------------------------------------------------
  83.